Many organizations use data stores for storing business data, such as financial data and operational data. In order to assist business users to examine their data, various data analyzing applications are proposed. Those data analyzing applications provide various views or reports of data to users. The data analyzing applications have query engines that access the data stores to obtain desired data. Some data analyzing applications have Online Analytical Processing (OLAP) engines to provide multidimensional views of data.
Those existing query engines and OLAP engines use components of the engines to obtain desired data, and do not allow for external components to be involved into the internal logic of query processing. Thus, these engines cannot reuse or share functionality with other components.
Reuse query operation provider functionality is possible in the architecture supported by Object Linking & Embedding Data Base (OLE DB) interface, where so called “OLEDB service providers” are designated to provide reusable functionality for query result post-processing. Yet the planning logic compiling all query operation provider actions in a single execution plan cannot be shared.
It is therefore preferable to provide an efficient mechanism to prepare queries for execution in a manner that provider actions can be shared.